<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OpenMesh: OpenMesh/Core/Mesh/Traits.hh File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="logo_align.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="rwth_vci_rgb.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">OpenMesh
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a04476.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">Traits.hh File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This file defines the default traits and some convenience macros.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;OpenMesh/Core/System/config.h&gt;</code><br />
<code>#include &lt;OpenMesh/Core/Geometry/VectorT.hh&gt;</code><br />
<code>#include &lt;<a class="el" href="a00329_source.html">OpenMesh/Core/Mesh/Attributes.hh</a>&gt;</code><br />
<code>#include &lt;OpenMesh/Core/Mesh/Handles.hh&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for Traits.hh:</div>
<div class="dyncontent">
<div class="center"><img src="a04477.png" border="0" usemap="#OpenMesh_2Core_2Mesh_2Traits_8hh" alt=""/></div>
<map name="OpenMesh_2Core_2Mesh_2Traits_8hh" id="OpenMesh_2Core_2Mesh_2Traits_8hh">
<area shape="rect" id="node3" href="a00167_source.html" title="OpenMesh/Core/Geometry\l/VectorT.hh" alt="" coords="24,95,202,136"/>
<area shape="rect" id="node4" href="a00329.html" title="This file provides some macros containing attribute usage. " alt="" coords="227,95,380,136"/>
<area shape="rect" id="node6" href="a00368_source.html" title="OpenMesh/Core/Mesh\l/Handles.hh" alt="" coords="404,95,558,136"/>
<area shape="rect" id="node5" href="a00401_source.html" title="OpenMesh/Core/Mesh\l/Status.hh" alt="" coords="227,184,380,225"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="a04478.png" border="0" usemap="#OpenMesh_2Core_2Mesh_2Traits_8hhdep" alt=""/></div>
<map name="OpenMesh_2Core_2Mesh_2Traits_8hhdep" id="OpenMesh_2Core_2Mesh_2Traits_8hhdep">
<area shape="rect" id="node2" href="a00383_source.html" title="OpenMesh/Core/Mesh\l/PolyMesh_ArrayKernelT.hh" alt="" coords="365,95,551,136"/>
<area shape="rect" id="node5" href="a00347_source.html" title="OpenMesh/Core/Mesh\l/DefaultPolyMesh.hh" alt="" coords="5,191,159,233"/>
<area shape="rect" id="node7" href="a00416_source.html" title="OpenMesh/Core/Mesh\l/TriMesh_ArrayKernelT.hh" alt="" coords="1192,95,1367,136"/>
<area shape="rect" id="node8" href="a00350_source.html" title="OpenMesh/Core/Mesh\l/DefaultTriMesh.hh" alt="" coords="712,191,865,233"/>
<area shape="rect" id="node9" href="a00014_source.html" title="OpenMesh/Apps/Decimating\l/DecimaterViewerWidget.hh" alt="" coords="890,191,1079,233"/>
<area shape="rect" id="node16" href="a04503.html" title="Mesh traits for adaptive composite subdivider. " alt="" coords="2627,95,2889,136"/>
<area shape="rect" id="node22" href="a04506.html" title="Mesh traits for uniform composite subdivision. " alt="" coords="2063,95,2320,136"/>
<area shape="rect" id="node25" href="a00761_source.html" title="OpenMesh/Tools/VDPM\l/MeshTraits.hh" alt="" coords="1601,95,1765,136"/>
<area shape="rect" id="node26" href="a04479.html" title="This file defines the default traits and some convenienve macros. " alt="" coords="3153,95,3315,136"/>
<area shape="rect" id="node27" href="a00635_source.html" title="OpenMesh/Tools/Kernel\l_OSG/TriMesh_OSGArrayKernelT.hh" alt="" coords="3177,191,3416,233"/>
<area shape="rect" id="node3" href="a00620_source.html" title="OpenMesh/Tools/Dualizer\l/meshDualT.hh" alt="" coords="183,191,357,233"/>
<area shape="rect" id="node4" href="a00341_source.html" title="OpenMesh/Core/Mesh\l/Casts.hh" alt="" coords="381,191,535,233"/>
<area shape="rect" id="node6" href="a00809_source.html" title="Unittests/unittests\l_common.hh" alt="" coords="559,191,688,233"/>
<area shape="rect" id="node10" href="a00029_source.html" title="OpenMesh/Apps/ProgViewer\l/ProgViewerWidget.hh" alt="" coords="1104,191,1295,233"/>
<area shape="rect" id="node11" href="a04458_source.html" title="OpenMesh/Apps/QtViewer\l/MeshViewerWidget.hh" alt="" coords="1319,191,1496,233"/>
<area shape="rect" id="node12" href="a04461_source.html" title="OpenMesh/Apps/Subdivider\l/MeshViewerWidget.hh" alt="" coords="1993,191,2177,233"/>
<area shape="rect" id="node14" href="a00137_source.html" title="OpenMesh/Apps/VDProgMesh\l/Synthesizer/VDPMSynthesizerViewer\lWidget.hh" alt="" coords="1721,184,1968,240"/>
<area shape="rect" id="node15" href="a00812_source.html" title="Unittests/unittests\l_common_customtraits.hh" alt="" coords="1521,191,1697,233"/>
<area shape="rect" id="node13" href="a00068_source.html" title="OpenMesh/Apps/Subdivider\l/SubdivideWidget.hh" alt="" coords="1993,295,2177,337"/>
<area shape="rect" id="node17" href="a04491.html" title="OpenMesh/Tools/Subdivider\l/Adaptive/Composite/CompositeT.hh" alt="" coords="2639,191,2877,233"/>
<area shape="rect" id="node19" href="a00677_source.html" title="OpenMesh/Tools/Subdivider\l/Adaptive/Composite/RuleInterfaceT.hh" alt="" coords="2901,191,3153,233"/>
<area shape="rect" id="node18" href="a04497.html" title="OpenMesh/Tools/Subdivider\l/Adaptive/Composite/CompositeT\l_impl.hh" alt="" coords="2665,288,2883,344"/>
<area shape="rect" id="node20" href="a00680.html" title="OpenMesh/Tools/Subdivider\l/Adaptive/Composite/RulesT.hh" alt="" coords="2923,295,3131,337"/>
<area shape="rect" id="node21" href="a00683.html" title="OpenMesh/Tools/Subdivider\l/Adaptive/Composite/RulesT\l_impl.hh" alt="" coords="2932,392,3123,448"/>
<area shape="rect" id="node23" href="a00695.html" title="OpenMesh/Tools/Subdivider\l/Uniform/CompositeSqrt3T.hh" alt="" coords="2419,191,2615,233"/>
<area shape="rect" id="node24" href="a00692.html" title="OpenMesh/Tools/Subdivider\l/Uniform/CompositeLoopT.hh" alt="" coords="2201,191,2395,233"/>
</map>
</div>
</div>
<p><a href="a04476_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02469.html">OpenMesh::DefaultTraits</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for all traits.  <a href="a02469.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02473.html">OpenMesh::DefaultTraitsDouble</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version of Default Traits that uses double precision for points and normals as well as floating point vectors for colors.  <a href="a02473.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02477.html">OpenMesh::MergeTraits&lt; _Traits1, _Traits2 &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper class to merge two mesh traits.  <a href="a02477.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:a01233"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01233.html">OpenMesh</a></td></tr>
<tr class="memdesc:a01233"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels and mesh traits. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a427ff443d5e47c76b9c45a29213e63db"><td class="memItemLeft" align="right" valign="top"><a id="a427ff443d5e47c76b9c45a29213e63db"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#a427ff443d5e47c76b9c45a29213e63db">VertexAttributes</a>(_i)&#160;&#160;&#160;enum { VertexAttributes = _i }</td></tr>
<tr class="memdesc:a427ff443d5e47c76b9c45a29213e63db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for defining the vertex attributes. See <a class="el" href="a04324.html">Specifying your MyMesh</a>. <br /></td></tr>
<tr class="separator:a427ff443d5e47c76b9c45a29213e63db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72688ff15a275a41a98159ce72eaab4f"><td class="memItemLeft" align="right" valign="top"><a id="a72688ff15a275a41a98159ce72eaab4f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#a72688ff15a275a41a98159ce72eaab4f">HalfedgeAttributes</a>(_i)&#160;&#160;&#160;enum { HalfedgeAttributes = _i }</td></tr>
<tr class="memdesc:a72688ff15a275a41a98159ce72eaab4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for defining the halfedge attributes. See <a class="el" href="a04324.html">Specifying your MyMesh</a>. <br /></td></tr>
<tr class="separator:a72688ff15a275a41a98159ce72eaab4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8126b6d66b0b65c5e23e8856c6092c28"><td class="memItemLeft" align="right" valign="top"><a id="a8126b6d66b0b65c5e23e8856c6092c28"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#a8126b6d66b0b65c5e23e8856c6092c28">EdgeAttributes</a>(_i)&#160;&#160;&#160;enum { EdgeAttributes = _i }</td></tr>
<tr class="memdesc:a8126b6d66b0b65c5e23e8856c6092c28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for defining the edge attributes. See <a class="el" href="a04324.html">Specifying your MyMesh</a>. <br /></td></tr>
<tr class="separator:a8126b6d66b0b65c5e23e8856c6092c28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75f0d731abf2489208086aac5147eefc"><td class="memItemLeft" align="right" valign="top"><a id="a75f0d731abf2489208086aac5147eefc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#a75f0d731abf2489208086aac5147eefc">FaceAttributes</a>(_i)&#160;&#160;&#160;enum { FaceAttributes = _i }</td></tr>
<tr class="memdesc:a75f0d731abf2489208086aac5147eefc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for defining the face attributes. See <a class="el" href="a04324.html">Specifying your MyMesh</a>. <br /></td></tr>
<tr class="separator:a75f0d731abf2489208086aac5147eefc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5146d858418fcb93715406a6ce8e30f"><td class="memItemLeft" align="right" valign="top"><a id="aa5146d858418fcb93715406a6ce8e30f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#aa5146d858418fcb93715406a6ce8e30f">VertexTraits</a>&#160;&#160;&#160;template &lt;class Base, class Refs&gt; struct VertexT : public Base</td></tr>
<tr class="memdesc:aa5146d858418fcb93715406a6ce8e30f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for defining the vertex traits. See <a class="el" href="a04324.html">Specifying your MyMesh</a>. <br /></td></tr>
<tr class="separator:aa5146d858418fcb93715406a6ce8e30f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a223434df0f07f8e05b89324094fc1de8"><td class="memItemLeft" align="right" valign="top"><a id="a223434df0f07f8e05b89324094fc1de8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#a223434df0f07f8e05b89324094fc1de8">HalfedgeTraits</a>&#160;&#160;&#160;template &lt;class Base, class Refs&gt; struct HalfedgeT : public Base</td></tr>
<tr class="memdesc:a223434df0f07f8e05b89324094fc1de8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for defining the halfedge traits. See <a class="el" href="a04324.html">Specifying your MyMesh</a>. <br /></td></tr>
<tr class="separator:a223434df0f07f8e05b89324094fc1de8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbd10edc9787f8347769a11391896d9e"><td class="memItemLeft" align="right" valign="top"><a id="adbd10edc9787f8347769a11391896d9e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#adbd10edc9787f8347769a11391896d9e">EdgeTraits</a>&#160;&#160;&#160;template &lt;class Base, class Refs&gt; struct EdgeT : public Base</td></tr>
<tr class="memdesc:adbd10edc9787f8347769a11391896d9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for defining the edge traits. See <a class="el" href="a04324.html">Specifying your MyMesh</a>. <br /></td></tr>
<tr class="separator:adbd10edc9787f8347769a11391896d9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48a58bb27b065ea6b5f6e973756f1800"><td class="memItemLeft" align="right" valign="top"><a id="a48a58bb27b065ea6b5f6e973756f1800"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#a48a58bb27b065ea6b5f6e973756f1800">FaceTraits</a>&#160;&#160;&#160;template &lt;class Base, class Refs&gt; struct FaceT : public Base</td></tr>
<tr class="memdesc:a48a58bb27b065ea6b5f6e973756f1800"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for defining the face traits. See <a class="el" href="a04324.html">Specifying your MyMesh</a>. <br /></td></tr>
<tr class="separator:a48a58bb27b065ea6b5f6e973756f1800"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a746c83f2828928d4e7c4de0b2613e396"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#a746c83f2828928d4e7c4de0b2613e396">OM_Merge_Traits</a>(_S1,  _S2,  _D)&#160;&#160;&#160;typedef <a class="el" href="a02477.html">OpenMesh::MergeTraits</a>&lt;_S1, _S2&gt;::Result _D;</td></tr>
<tr class="memdesc:a746c83f2828928d4e7c4de0b2613e396"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for merging two traits classes _S1 and _S2 into one traits class _D.  <a href="#a746c83f2828928d4e7c4de0b2613e396">More...</a><br /></td></tr>
<tr class="separator:a746c83f2828928d4e7c4de0b2613e396"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97a9676df79fe2881136f983f3cf3b05"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a04476.html#a97a9676df79fe2881136f983f3cf3b05">OM_Merge_Traits_In_Template</a>(_S1,  _S2,  _D)&#160;&#160;&#160;typedef typename <a class="el" href="a02477.html">OpenMesh::MergeTraits</a>&lt;_S1, _S2&gt;::Result _D;</td></tr>
<tr class="memdesc:a97a9676df79fe2881136f983f3cf3b05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for merging two traits classes _S1 and _S2 into one traits class _D.  <a href="#a97a9676df79fe2881136f983f3cf3b05">More...</a><br /></td></tr>
<tr class="separator:a97a9676df79fe2881136f983f3cf3b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This file defines the default traits and some convenience macros. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a746c83f2828928d4e7c4de0b2613e396"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a746c83f2828928d4e7c4de0b2613e396">&#9670;&nbsp;</a></span>OM_Merge_Traits</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OM_Merge_Traits</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_S1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_S2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_D&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;typedef <a class="el" href="a02477.html">OpenMesh::MergeTraits</a>&lt;_S1, _S2&gt;::Result _D;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Macro for merging two traits classes _S1 and _S2 into one traits class _D. </p>
<p>Note that in case of ambiguities class _S1 overrides _S2, especially the point/normal/color/texcoord type to be used is taken from _S1::Point / _S1::Normal / _S1::Color / _S1::TexCoord </p>

</div>
</div>
<a id="a97a9676df79fe2881136f983f3cf3b05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97a9676df79fe2881136f983f3cf3b05">&#9670;&nbsp;</a></span>OM_Merge_Traits_In_Template</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OM_Merge_Traits_In_Template</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_S1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_S2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_D&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;typedef typename <a class="el" href="a02477.html">OpenMesh::MergeTraits</a>&lt;_S1, _S2&gt;::Result _D;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Macro for merging two traits classes _S1 and _S2 into one traits class _D. </p>
<p>Same as OM_Merge_Traits, but this can be used inside template classes. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<hr>
<address>
<small>
<a href="http://www.rwth-graphics.de" style="text-decoration:none;">
</a>
Project <b>OpenMesh</b>, 
&copy;&nbsp; Computer Graphics Group, RWTH Aachen.
Documentation generated using 
<a class="el" href="http://www.doxygen.org/index.html">
<b>doxygen</b>
</a>.
</small>
</address>
</body>
</html>
